支持向量机原理(超详细)

支持向量机(SVM)是机器学习算法之一,是二分类算法。给定一组训练样本集,如图,样本数据集是二维的,分散在平面上,需要找到一条直线将数据集分割开。可以分开的直线有很多,我们要找到其中泛化能力最好,鲁棒性最强的直线。这是在平面上的点,如果是在三维空间中,则需要找到一个平面;如果是超过三维以上的维数,则需要找到一个超平面。
在这里插入图片描述在这里插入图片描述
超平面的表达式为:
在这里插入图片描述
原理举例:wT取(w1,w2),x取(x1,x2)T, 则原式得 w1x1+w2x2+b=0 与传统直线 Ax+By+c=0 方程式
相同,由二维三维空间推到更高维平面的一般式即为上式。
W:为平面法向量,决定了超平面的方向
b: 决定了超平面距原点的距离
法向量与样本属性的个数、超空间维数相同。在超空间中我们要求的参数就是决定超平面的W和b值。

在超空间中任意一点x到超平面的距离为:
在这里插入图片描述
我们可以由特殊到一般的理解一下这个式子,如果在二维空间即平面上,点到直线的距离为:
在这里插入图片描述
式子中A,B,C是直线的参数也就是W,x0和y0是x的坐标,这样r式是不是就好理解了,这个距离是几何距离,也就是人眼直观看到的距离。几何距离只有大小没有方向,因为式子是被套上绝对值的,将绝对值摘掉,现在我们就人为规定,样本数据中到超平面的距离为正的点为+1类的样本点,就是这类点给它打个标签+1,到超平面的距离为负的点标签为-1,为什么不是+2,-2其实都可以,取1是为了后续方便计算;

现在假设这个超平面能够将样本正确分类,只不过这个超平面的wb值我们不知道,这正是我们要求的,但是这个平面是一定存在的,有:
在这里插入图片描述
将几何距离r式中的分子绝对值和分母拿掉以后(因为都为正)剩下的wT+b是能够判断出样本为+1还是-1类别的部分,定义函数距离(很重要)为:
在这里插入图片描述
函数距离就是样本类别乘wT+b。因为正样本类别为+1,且wT+b也为正;负样本类别为-1且wT+b为负。所以函数距离只有大小没有方向。
函数距离就相当于几何距离的分子部分,在所有样本中每一个点都有一个函数距离和一个几何距离,几何距离是可观测到的直接的距离,函数距离具有如下性质:一个点到超平面的函数距离取决于这个超平面的法向量和b值,同一个超平面可以有多组w和b值,但每组值成比例。w和b值不同,点的函数距离也不同。
三维空间举例:
现有两个平面2x+3y+4z+2=0 与 4x+6y+8z+4=0
有点:x(1,1,1)
则点到平面的函数距离分别为:11,22。 但平面实质为一个平面,只有w和b值不同,也就是说我们可以通过放缩w和b值,来控制函数距离!!!

重点:支持向量机数学模型原理,其实就是通过控制函数距离来求得最大几何距离。也就是函数距离为约束条件,几何距离为目标函数。具体往下看:
通过放缩w和b,让两类中某一类点距超平面的函数距离分别为1(离超平面的距离相等,为1方便后续计算)。
W和b值未知,但总存在一组值满足上述。如图:
在这里插入图片描述
中间最粗的平面为我们要求的超平面,两边的虚线为支撑平面,支撑平面上的点就是支持向量,通过放缩超平面的w和b值,使支持向量到超平面的函数距离为1,支持向量是距超平面最近的点,所以其他向量点到超平面的函数距离一定大于等于1。其实这时候就可以建立最初的模型了,为:
在这里插入图片描述
在这里插入图片描述
解释一下这个模型,首先先不看目标函数,先看约束条件,约束添加表达的是所有样本点到超平面的距离要大于等于1,在支撑平面上的为1,其他的大于1,根据约束条件其实可以得到无数个平面,如下面两个:
在这里插入图片描述
但是,在这些平面中我们需要的是泛华能力最好,鲁棒性最强的那一个,也就是最宽的那一个(margin最大),这时候就需要通过定义目标函数来求得,宽度最大也就是几何距离最大,几何距离的分子是函数距离,而两个支撑平面的函数距离我们定义完了是2,所以才有了上面的数学模型。

总的来说,就是通过函数距离作为约束条件得到无数个能把样本正确分开的平面,然后通过目标函数在这些平面中找最宽的!
把上面的数学模型转化为:
在这里插入图片描述
把求最大转变为求最小,即把模型转化为凸函数,其实到这里已经是优化问题了,凸函数是比较容易找到最优解的,因为局部极值就等于全局极值。至于为什么加个二分之一的系数,加个平方,都是为了后续解模型时求导方便。这个模型即为支持向量机的基本型,后面涉及到的软间隔,支持向量回归都从这个形式出发。
所建立的模型为凸二次规划(局部极值的全局极值、目标函数为二次约束条件为一次)。能直接用现成的优化计算包求解,但是可以有更高效的办法。利用拉格朗日乘子法,将两个参数的优化问题转化为一个参数的优化问题,进而求解模型。
对所建立的模型使用拉格朗日乘子法,将约束条件转化为目标函数,即对每条约束添加拉格朗日乘子 ɑi>0。得到如下拉格朗日函数。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对于等式约束可以直接使用拉格朗日乘子法求极值,对于不等式约束要满足KKT条件约束进行求解,模型对应的KKT条件为:
在这里插入图片描述
将w公式代入原函数有:
在这里插入图片描述
上面最后的那个式子可以看到已经不含w和b值了,就只有拉格朗日乘子。利用SMO算法将每个样本数据的乘子解出来,观察约束条件在这里插入图片描述

总有 在这里插入图片描述
在这里插入图片描述
前者意味着向量点根本不会在求和中出现,后者意味着向量在支撑平面上,是一个支撑向量,训练完成后大部分样本都不需要保留。也就是训练完后大部分拉格朗日乘子都为零,只有在支撑平面上的样本的拉格朗日乘子不为0。
至此,已经对支持向量机有一个基本认识,以上数学推理为支持向量机的硬间隔。记住这个模型:
在这里插入图片描述
支持向量机的软间隔、核函数方法、支持向量回归都是在这个模型的基础上的。上面讲的是样本完全线性可分,但是实际中,不可分的情况多谢,如果是线性不可分的如:
在这里插入图片描述
需要把数据映射到更高维空间,这时候用到核函数
如果数据有噪声如:
在这里插入图片描述
那么用到的是支持向量机的软间隔
如果你不是分类数据而是要有监督的预测数据,那么就是支持向量回归。
在这里插入图片描述
软间隔、核函数、支持向量回归我会以后写出来。

  • 86
    点赞
  • 451
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
支持向量机是一种经典的机器学习算法,其核心思想是通过寻找一个最优的平面来对数据进行分类。以下是支持向量机原理介绍: 1. 线性可分情况下的支持向量机:在二分类问题中,假设我们有一组数据集,其中一些数据点被标记为正样本,另一些数据点被标记为负样本,并且这些数据点是线性可分的。那么,支持向量机的目标就是寻找一个平面来将正样本和负样本分开,并且使得平面与最靠近它的正样本和负样本之间的距离最大。这些最靠近平面的数据点被称为支持向量,因为它们对于分类平面的位置有重要的影响。 2. 线性不可分情况下的支持向量机:在实际应用中,数据通常是线性不可分的。为了解决这个问题,我们可以将数据映射到高维空间中,使得数据在高维空间中是线性可分的。但是,这种高维映射的计算成本很高,可以使用核函数来避免这个问题。核函数是一个将低维空间中的向量映射到高维空间中的函数,它可以在低维空间中计算两个向量之间的内积,从而避免了昂贵的高维计算。 3. 最大间隔分类器:支持向量机的目标是寻找一个平面,使得最靠近它的正样本和负样本之间的距离最大。这个距离被称为间隔。支持向量机的优化目标是找到最大间隔分类器,这是一个分类器,它最大化最靠近平面的正样本和负样本之间的距离。 4. 正则化:为了防止过拟合,支持向量机通常会引入正则化项。正则化项是一个惩罚项,它惩罚模型的复杂度。这个惩罚项可以是L1或L2正则化。 5. 求解:支持向量机的求解可以使用凸优化算法来实现。有很多优化算法可以用来求解支持向量机,其中最常用的是序列最小优化算法(SMO)。 以上就是支持向量机基本原理

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值